package global

// xls
type (
	XTaskSheetName struct {
		Terminal  string `json:"terminal"`
		Result    string `json:"task_result"`
		MissTable string `json:"missTable"`
	}
	XTaskSheetTail struct {
		Seq             string `json:"任务序号"`
		Schema          string `json:"库名"`
		Table           string `json:"表名"`
		TextCN          string `json:"文本列名"`
		TextCT          string `json:"文本类型"`
		IndexName       string `json:"索引名"`
		IndexType       string `json:"索引类型"`
		IndexCol        string `json:"索引列"`
		DataLength      string `json:"数据大小(MB)"`
		CardinalityRate string `json:"离散度"`
		RateEvaluation  string `json:"优先级"`
		Sum             int64  `json:"总行数"`
		PartitionsSum   int64  `json:"分区数量"`
		PartitionsType  string `json:"分区类型"`
		TaskName        string `json:"任务名称"`
		Comment         string `json:"备注"` //主要描述错误信息的记录
	}
)
type (
	// TTask 终端结果输出表结构
	TTask struct {
		Seq        string `json:"seq"`
		Schema     string `json:"schema"`
		Table      string `json:"object"`
		Role       string `json:"role"`
		IndexName  string `json:"indexName"`
		IndexType  string `json:"indexType"`
		IndexCol   string `json:"indexColumn"`
		CheckMode  string `json:"mode"`      //模式
		Sum        *int64 `json:"Sum"`       //表的实际行数
		Histogram  string `json:"histogram"` //源端查询装填
		TaskStatus *int64 //同步状态   0为正常，-1为异常  //`json:"syncStatus"`
		TaskInfo   string `json:"taskStat"` //同步信息，主要记录error信息
	}
)

// task 迁移
type (
	TaskObject struct {
		Schema     string                                     `json:"schema"`
		Table      string                                     `json:"table"`
		MapSchema  map[string] /*schema+table*/ ObjectMapList `json:"mapSchema"`
		ShardNameS map[string] /*schema+table*/ string/*shardName*/ `json:"shardNameS"`
		ShardNameD map[string] /*schema+table*/ string/*shardName*/ `json:"shardNameD"`
	}
	TaskTableBaseData struct {
		Sum        *int64
		DataLength string `json:"数据大小"`
	}
	TaskTableMetaData struct {
		LobCN     string
		LobCT     string
		VarcharCN string
		VarcharCT string
		TextCN    string `json:"文本列名"`
		TextCT    string `json:"文本类型"`
	}
	TaskTableIndexData struct {
		IndexName       string `json:"索引名"`
		IndexType       string `json:"索引类型"`
		IndexCol        string `json:"索引列"`
		CardinalityRate string `json:"离散度"`
		RateEvaluation  string `json:"优先级"`
	}
	TaskTablePartitionData struct {
		PartitionsSum  int64  `json:"分区数量"`
		PartitionsType string `json:"分区类型"`
	}
	TaskPlan struct {
		Switch         bool
		CheckMod       string
		Seq            int
		TableFixActive string
		BaseData       TaskTableBaseData
		MetaData       TaskTableMetaData
		IndexData      TaskTableIndexData
		PartitionData  TaskTablePartitionData
		TaskName       string `json:"任务名称"`
	}
)
